package com.company.aicrawlers.service;

import com.company.aicrawlers.entity.QuestionCategory;

import java.util.List;

/**
 * 问句-类别关联服务接口
 *
 * @author AI Crawlers Team
 * @date 2025-10-10
 */
public interface QuestionCategoryService {
    
    /**
     * 获取问句关联的所有类别名称
     *
     * @param questionId 问句ID
     * @return 类别名称列表
     */
    List<String> getCategoryNamesByQuestionId(Long questionId);
    
    /**
     * 获取某类别下的所有问句ID
     *
     * @param categoryName 类别名称
     * @return 问句ID列表
     */
    List<Long> getQuestionIdsByCategoryName(String categoryName);
    
    /**
     * 添加问句-类别关联
     *
     * @param questionId 问句ID
     * @param categoryId 类别ID
     * @param categoryName 类别名称
     * @param sortOrder 排序
     * @return 关联ID
     */
    Long addRelation(Long questionId, Long categoryId, String categoryName, Integer sortOrder);
    
    /**
     * 移除问句-类别关联
     *
     * @param questionId 问句ID
     * @param categoryId 类别ID
     */
    void removeRelation(Long questionId, Long categoryId);
    
    /**
     * 批量设置问句的类别关联
     * （先清除旧关联，再添加新关联）
     *
     * @param questionId 问句ID
     * @param relations 关联列表
     */
    void batchSetRelations(Long questionId, List<QuestionCategory> relations);
    
    /**
     * 清除问句的所有类别关联
     *
     * @param questionId 问句ID
     */
    void clearQuestionRelations(Long questionId);
}

